"""
Celery 应用配置
"""
from celery import Celery
from config.config_dev import TORTOISE_ORM

# 创建 Celery 应用实例
# broker: 消息代理，使用 Redis
# backend: 结果后端，使用 Redis
celery_app = Celery(
    "myproject",
    broker="redis://localhost:6379/0",  # Redis 作为消息代理
    backend="redis://localhost:6379/0",  # Redis 作为结果后端
)

# Celery 配置
celery_app.conf.update(
    task_serializer="json",
    accept_content=["json"],
    result_serializer="json",
    timezone="Asia/Shanghai",
    enable_utc=True,
    # 任务路由配置
    task_routes={
        "tasks.order_tasks.*": {"queue": "orders"},
    },
    # 任务执行配置
    task_acks_late=True,  # 任务完成后才确认
    task_reject_on_worker_lost=True,  # worker 丢失时拒绝任务
    # 结果过期时间（秒）
    result_expires=3600,
)

# 自动发现任务
celery_app.autodiscover_tasks(["tasks"])
